// 预约管理页面
Page({
  // 页面的初始数据
  data: {
    activeTab: 'pending', // pending-待处理, approved-已审批
    appointmentList: [], // 预约列表数据
    currentAppointment: null, // 当前选中的预约
    showDetailModal: false, // 是否显示详情模态框
    showApprovalModal: false, // 是否显示审批模态框
    approvalForm: {
      status: 'approved', // approved-通过, rejected-驳回
      remark: '' // 审批备注
    }
  },

  // 页面加载时执行
  onLoad() {
    this.loadAppointments();
  },

  // 切换标签页（待处理/已审批）
  onTabChange(e) {
    const tab = e.currentTarget.dataset.tab;
    this.setData({ activeTab: tab });
    this.loadAppointments();
  },

  // 从数据库加载预约列表数据
  async loadAppointments() {
    try {
      const db = wx.cloud.database();
      // 根据当前标签页状态查询相应的预约记录
      const { data } = await db.collection('appointments')
        .where({
          status: this.data.activeTab
        })
        .orderBy('createTime', 'desc') // 按创建时间降序排列
        .get();
      
      this.setData({ appointmentList: data });
    } catch (error) {
      // 加载失败时显示提示
      wx.showToast({
        title: '加载失败',
        icon: 'none'
      });
    }
  },

  // 查看预约详情，打开详情模态框
  onViewDetail(e) {
    const appointment = e.currentTarget.dataset.appointment;
    this.setData({
      currentAppointment: appointment,
      showDetailModal: true
    });
  },

  // 处理预约，打开审批模态框
  onHandleAppointment(e) {
    const appointment = e.currentTarget.dataset.appointment;
    // 设置当前处理的预约并初始化审批表单
    this.setData({
      currentAppointment: appointment,
      showApprovalModal: true,
      approvalForm: {
        status: 'approved', // 默认为通过
        remark: ''
      }
    });
  },

  // 提交审批结果到数据库
  async submitApproval() {
    try {
      const db = wx.cloud.database();
      // 更新预约记录的状态、备注和时间信息
      await db.collection('appointments').doc(this.data.currentAppointment._id).update({
        data: {
          status: this.data.approvalForm.status,
          remark: this.data.approvalForm.remark,
          approvalTime: db.serverDate(), // 审批时间
          updateTime: db.serverDate() // 更新时间
        }
      });

      // 处理成功提示
      wx.showToast({
        title: '处理成功',
        icon: 'success'
      });

      // 关闭所有模态框
      this.setData({
        showApprovalModal: false,
        showDetailModal: false
      });

      // 重新加载预约列表
      this.loadAppointments();
    } catch (error) {
      // 处理失败提示
      wx.showToast({
        title: '处理失败',
        icon: 'none'
      });
    }
  },

  // 处理表单输入变化
  onInput(e) {
    const { field } = e.currentTarget.dataset;
    // 动态设置表单对应字段的值
    this.setData({
      [`approvalForm.${field}`]: e.detail.value
    });
  },

  // 处理审批状态变更（通过/驳回）
  onStatusChange(e) {
    this.setData({
      'approvalForm.status': e.detail.value
    });
  },

  // 关闭所有模态框
  closeModal() {
    this.setData({
      showDetailModal: false,
      showApprovalModal: false
    });
  }
}); 